﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.Objects.DataClasses;
using Common.Model;

namespace Common.DataAccess
{
    public interface IGenericEntityManagerDataAccess<E, C, EV> : IGenericEntityReaderDataAccess<E>
        where E : IObjectWithChangeTracker
        where C : CriteriaEntity
        where EV : ViewEntity
    {

        E Read(Guid id);

        List<EV> Read(C criteria);

        void Save(E entity);

        void Delete(ViewEntity viewEntity);

        void RejectChanges();

    }
}
